package com.xxxx.server.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xxxx.server.mapper.JoblevelMapper;
import com.xxxx.server.pojo.Joblevel;
import com.xxxx.server.pojo.RespBean;
import com.xxxx.server.service.IJoblevelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author zhoubin
 * @since 2020-10-15
 */
@Service
public class JoblevelServiceImpl extends ServiceImpl<JoblevelMapper, Joblevel> implements IJoblevelService {

    @Autowired
    private JoblevelMapper joblevelMapper;

    /**
     * 查询所有职称
     * @return
     */
    @Override
    public List<Joblevel> getAllJobLevels() {
        return joblevelMapper.selectList(null);
    }

    /**
     * 添加职称
     * @param joblevel
     * @return
     */
    @Override
    public RespBean addJobLevel(Joblevel joblevel) {
        //设置职称创建时间
        joblevel.setCreateDate(LocalDateTime.now());
        //设置可用
        joblevel.setEnabled(true);

        if (null == joblevel.getName()){
            return RespBean.error("职称名不能为空！");
        }
        if (null != joblevelMapper.selectJoblevelByName(joblevel.getName())){
            return RespBean.error("此职称已存在，请重新输入！");
        }
        if (joblevelMapper.insert(joblevel) == 1){
            return RespBean.success("职称添加成功！");
        }
        return RespBean.error("职称添加失败！");
    }

    /**
     * 编辑职称
     * @param joblevel
     * @return
     */
    @Override
    public RespBean updateJobLevel(Joblevel joblevel) {
        if (null == joblevel.getName() || "".equals(joblevel.getName())){
            return RespBean.error("职称名不能为空！");
        }
        if (joblevelMapper.updateById(joblevel) == 1){
            return RespBean.success("更新成功！");
        }
        return RespBean.error("更新失败！");
    }

    /**
     * 根据id删除职称
     * @param id
     * @return
     */
    @Override
    public RespBean deleteJobLevel(Integer id) {
        if (null == joblevelMapper.selectById(id)){
            return RespBean.error("待删除职称不存在！");
        }
        if (joblevelMapper.deleteById(id) == 1){
            return RespBean.success("职称删除成功！");
        }
        return RespBean.error("职称删除失败");
    }

    /**
     * 批量删除职称
     * @param ids
     * @return
     */
    @Override
    public RespBean deleteJobLevelsByIds(String ids) {
        int success = 0;
        List list = new ArrayList();
        //分割并存入数据至数组
        String[] idStr = ids.split(",");
        //遍历要删除的职称id存入至集合
        for (int i = 0; i < idStr.length; i++) {
            list.add(idStr[i]);
            success++;
        }
        //执行批量删除
        joblevelMapper.deleteBatchIds(list);
        return RespBean.success("成功删除了" + success + "条数据");

    }
}
